package com.seeyon.apps.ningbobank.manager;

import com.seeyon.cap4.form.bean.FormBean;
import com.seeyon.cap4.form.bean.FormDataMasterBean;
import com.seeyon.ctp.workflow.supernode.SuperNodeResponse;
import com.seeyon.ctp.workflow.supernode.enums.SuperNodeEnums;

import java.util.Map;

/**
 * @ClassName : NingBoBankSuperNodeManager
 * @Description :宁波银行付款超级节点接口
 * @CreateDate : 2025/7/29 10:27
 * @Author : CheungHowrAn
 * @Version : 1.0.0
 * @PackageName com.seeyon.apps.ningbobank.manager
 * @Project : BSiEE本涩_A8_V9.0SP1
 */
public interface NingBoBankSuperNodeManager {

    /**
     * @MethodName: executeAction
     * @Description: 超级节点事件触发动作
     * @CreateDate: 2025/7/29 10:50
     * @Author: CheungHowrAn
     * @Param superNodeId 超级节点ID
     * @Param formBean 表单Bean
     * @Param formDataMasterBean 表单数据Bean
     * @Return SuperNodeResponse
     */
    public SuperNodeResponse executeAction(String superNodeId, FormBean formBean, FormDataMasterBean formDataMasterBean);

    /**
     * @MethodName: operateSuperNode
     * @Description: 操作超级节点
     * @CreateDate: 2025/7/29 10:49
     * @Author: CheungHowrAn
     * @Param superNodeId 超级节点ID
     * @Param runAction 运行动作
     * @Param formDataId(formRecordId) 表单数据ID
     * @Param msg  处理结果  成功就传成功 失败就传失败+原因
     */
    public void operateSuperNode(String superNodeId, SuperNodeEnums.RunAction runAction, String formDataId, String msg);

    /**
     * @MethodName: getSuperNodeControlDetail
     * @Description: 根据summaryId获取超级节点ID信息
     * @CreateDate: 2025/10/14 11:10
     * @Author: CheungHowrAn
     * @Param summaryId 流程 summaryId
     * @Param superNodeName 超级节点名称 对应 getNodeId()的值
     * @Return Map<Object>
     */
    public Map<String, Object> getSuperNodeControlDetail(String summaryId,String superNodeName);
}
